$(function () {
    //需求1：获取并渲染文章类别信息
    // 封装成函数，后面的添加、修改、删除复用
    // 调用函数
    initArtCateList()
    // 封装函数
    function initArtCateList() {
        // 发送ajax
        axios({
            method: 'GET',
            url: '/my/article/cates',
        }).then(({ data: res }) => {
            // console.log(res);
            if (res.status != 0) {
                return layer.msg(res.message)
            }
            //渲染
            let arr = []
            res.data.forEach(ele => {
                arr.push(`
                <tr>
                    <td>${ele.Id}</td>
                    <td>${ele.name}</td>
                    <td>${ele.alias}</td>
                    <td>
                        <button data-id= "${ele.Id}" class="btn-edit  layui-btn layui-btn-xs">修改</button>
                        <button data-id='${ele.Id}'  class="del-edit  layui-btn layui-btn-xs layui-btn-danger">删除</button>
                    </td>
                  </tr>
                `)
            });
            $('tbody').empty().html(arr.join(''))
        });
    }
    //需求2.
    let indexAdd = 0
    $('#addBtn').on('click', function () {
        indexAdd = layer.open({
            type: 1,
            title: '添加文章列表',
            area: ['500px', '260px'],
            //内容区，将来放入form表单。
            content: `
            <form id="addForm" class="layui-form" action="">
            <!-- 分类名称 -->
            <div class="layui-form-item">
                <label class="layui-form-label">分类名称</label>
                <div class="layui-input-block">
                    <input type="text" name="name" required lay-verify="required" placeholder="请输入标题" autocomplete="off"
                        class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">分类别名</label>
                <div class="layui-input-block">
                    <input type="text" name="alias" required lay-verify="required" placeholder="请输入标题" autocomplete="off"
                        class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
    
                <div class="layui-input-block">
                    <button class="layui-btn" lay-submit lay-filter="formDemo">确认添加</button>
                    <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                </div>
            </div>
        </form>`,
        });
    })
    //需求3.添加文章分类
    $('body').on('submit', '#addForm', function (e) {
        e.preventDefault();
        // alert(111)
        axios({
            method: 'POST',
            url: '/my/article/addcates',
            data: $(this).serialize()
        }).then(({ data: res }) => {
            if (res.status != 0) {
                return layer.msg(res.message)
            }
            //成功提示 ,初始化文章分类

            layer.msg('恭喜您，添加文章成功！')
            initArtCateList()
            // 关闭对话框
            layer.close(indexAdd)
        })
    })
    // 需求4. 修改分类弹出层
    let indexEdit = 0
    $('tbody').on('click', '.btn-edit', function () {
        // console.log(1);
        indexEdit = layer.open({
            type: 1,
            title: '修改文章列表',
            area: ['500px', '260px'],
            //内容区，将来放入form表单。
            //102行的input标签是重新添加的，为了获取id值
            content: `
            <form id="editForm" class="layui-form" lay-filter="editForm">
            <input type="hidden" name="Id">                       
            <!-- 分类名称 -->
            <div class="layui-form-item">
                <label class="layui-form-label">分类名称</label>
                <div class="layui-input-block">
                    <input type="text" name="name" required lay-verify="required" placeholder="请输入标题" autocomplete="off"
                        class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">分类别名</label>
                <div class="layui-input-block">
                    <input type="text" name="alias" required lay-verify="required" placeholder="请输入标题" autocomplete="off"
                        class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
    
                <div class="layui-input-block">
                    <button class="layui-btn" lay-submit lay-filter="formDemo">确认修改</button>
                    <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                </div>
            </div>
        </form>`,
        });
        //点击编辑按钮做两件事，2赋值
        //(获取数据，和渲染数据，要写到.btn-edit的点击事件里面)
        let id = $(this).attr('data-id')
        // alert(id)
        //发送ajax 获取数据。渲染到页面
        axios({
            method: 'GET',
            //url参数，是需要把参数写到路径中的
            //  /要保留， ：要删除  id在后面保留住
            url: '/my/article/cates/' + id,
        }).then(({ data: res }) => {
            console.log(res);
            if (res.status != 0) {
                return layer.msg(res.message)
            }
            //赋值
            layui.form.val('editForm', res.data)
        })

    })

    //需求5：修改文章分类 - 事件委托、事件代理

    $('body').on('submit', '#editForm', function (e) {
        e.preventDefault();
        // alert(111)
        //修改分类
        axios({
            method: 'POST',
            url: '/my/article/updatecate',
            data: $(this).serialize()
        }).then(({ data: res }) => {
            if (res.status != 0) {
                return layer.msg(res.message)
            }
            //成功提示 ,初始化文章分类

            layer.msg('恭喜您，修改文章类别成功！')
            initArtCateList()
            // 关闭对话框
            layer.close(indexEdit)
        })
    })
    // 需求6.点击按钮，弹出对话框，删除文章分类 - 事件委托/事件代理
    $('tbody').on('click', '.del-edit', function () {
        //获取 自定义属性值
        let id = $(this).attr('data-id')
        // alert(id)
        if (id == 1 || id == 2) {
            return layer.msg('禁止删除前两条数据！')
        }
        //弹出层
        layer.confirm('确认删除吗', { icon: 3, title: '提示' }, function (index) {
            // 发送ajax
            axios({
                url:'/my/article/cates/'+id,
            }).then(({data:res})=>{
                if(res.status !=0){
                    return layer.msg(res.message)
                }
                //成功提示
                layer.msg('恭喜您，删除文章成功！')
            })
            layer.close(index);
        });
    })
})